package com.chub.study.util;

import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil;
import com.chub.study.enums.RedisKeyPrefixEnum;

import java.util.Arrays;

/**
 * @author : chub
 * @version : V1.0.0
 * @fileName : RedisKeyUtils.java
 * @description : TODO
 * @createTime : 2023-04-12 17:24
 */
public class RedisKeyUtils {
    /**
     * @description :  根据指定前缀与key组合成RedisKey
     *
     * @param  : prefixEnum
     * @param  : key
     * @return : String
     */
    public static String getKey(RedisKeyPrefixEnum prefixEnum, String key) {
        return prefixEnum == null ? null : getKey(prefixEnum.getPrefix(), key);
    }


    /**
     * @description : TODO
     *
     * @param  : prefix
     * @param  : key
     * @return : String
     */
    public static String getKey(String prefix, String key) {
        if (StrUtil.isEmpty(prefix) || StrUtil.isEmpty(key)) {
            return null;
        }
        if (key.length() < 32) {
            return prefix + ":" + key;
        }
        return prefix + ":" + Arrays.toString(DigestUtil.md5(key));
    }
}
